# coding=utf-8
"""
Time:2024/11/7 15:37
"""
'''
pip install openpyxl
'''
import sys
sys.path.append('..')
import openpyxl
from utiles.handle_path import *
import os

class Handle_Excel(object):
    '''封装一个读取Excel表格的工具类'''
    def __init__(self,filename,sheet_name):
        self.filename = filename
        self.sheet_name = sheet_name

    def open(self):
        '''封装一个打开Excel表格的工具方法'''
        # 通过调用load_workbook函数读取filename的文件的内容
        self.wb = openpyxl.load_workbook(self.filename)
        # 通过self.wb 打开对应的sheet页面
        self.sh = self.wb[self.sheet_name]

    def read_data(self):
        '''封装了一个读取Excel内容的工具方法'''
        self.open() #打开表格

        # 获取表格中每一行的数据放在元组当中
        datas = list(self.sh.rows) #把每一行的元组放入一个列表当中
        # print(datas) #取到所有行数据的对象
        # for i in datas[0]: #取的是第一行数据
        #     print(i.value)
        # 列表解析式
        title = [i.value for i in datas[0]]
        # print(title)
        # 创建一个空的列表，用来接受所有的测试用例
        cases = []
        for j in datas[1:]:
            values = [k.value for k in j]
            # print(values)
            case = dict(zip(title,values))
            cases.append(case)
        # print(cases)
        return cases
    def write_excel(self,row,column,value=None):
        '''
        封装一个往Excel表格中写入测试结果的方法
        :param row:
        :param column:
        :param value:
        :return:
        '''
        self.open()
        self.sh.cell(row,column,value)
        #保存数据
        self.wb.save(self.filename)

if __name__ == '__main__':
    path = os.path.join(data_path,'apicase.xlsx')
    read_excel = Handle_Excel(path,'login')
    # read_excel.read_data()
    # read_excel.write_excel(2,8,'通过')